package cc.rengu.igas.bomp.common.dao;

import cc.rengu.igas.bomp.common.entity.AlipayMchntInfo;
import cc.rengu.oltp.utility.bean.PageInfo;
import cc.rengu.oltp.utility.bean.PageResult;

/**
 * 支付宝商户信息表操作接口类
 * Created by 王成 on 2020/3/2
 */
public interface AlipayMchntInfoMapper {
    /**
     * 登记支付宝商户信息
     *
     * @param alipayMchntInfo 支付宝商户信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertAlipayMchntInfo(AlipayMchntInfo alipayMchntInfo) throws Exception;

    /**
     * 更新支付宝商户信息
     *
     * @param alipayMchntInfo 支付宝商户信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateAlipayMchntInfoById(AlipayMchntInfo alipayMchntInfo) throws Exception;

    /**
     * 更新支付宝商户信息
     *
     * @param alipayMchntInfo 支付宝商户信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateAlipayMchntInfoNoTransactionById(AlipayMchntInfo alipayMchntInfo) throws Exception;

    /**
     * 根据非业务主键查询支付宝商户信息
     *
     * @param instId 多法人标识
     * @param id     非业务主键
     * @return 支付宝商户信息
     * @throws Exception 异常
     */
    AlipayMchntInfo selectAlipayMchntInfoById(String instId, String id) throws Exception;

    /**
     * 根据主键查询支付宝商户信息
     *
     * @param instId  多法人标识
     * @param mchntNo 商户号
     * @return 支付宝商户信息
     * @throws Exception 异常
     */
    AlipayMchntInfo selectAlipayMchntInfoByPrimaryKey(String instId, String mchntNo) throws Exception;

    /**
     * 根据支付宝商户号查询支付宝商户信息
     *
     * @param instId        多法人标识
     * @param alipayMchntNo 支付宝商户号
     * @return 支付宝商户信息
     * @throws Exception 异常
     */
    AlipayMchntInfo selectAlipayMchntInfoByAlipayMchntNo(String instId, String alipayMchntNo) throws Exception;

    /**
     * 支付宝特殊费率列表查询
     *
     * @param instId              多法人标识
     * @param mchntNo             商户号
     * @param mchntName           商户名称
     * @param signInstId          签约机构
     * @param activityType        活动类型
     * @param activityApplyResult 活动结果
     * @param alipayActivityMcc   mcc码
     * @return 支付宝商户信息
     * @throws Exception 异常
     */
    PageResult selectAlipayActivityMchntInfoByInstid(String instId, String mchntNo, String mchntName, String signInstId, String activityType, String activityApplyResult,
                                                     PageInfo pageInfo, String alipayActivityMcc, String orgCode) throws Exception;
}
